import java.util.*; 

public class Main { 
public static void main(String[] args) { 
int i, min, max, n, temp1, temp2; 
int a[]; 
Scanner reader = new Scanner(System.in); 
n = reader.nextInt(); 
a = new int[n]; 
for (i = 0; i < n; i++) { 
a[i] = reader.nextInt(); 
}
//以上是输入整个数组
max = 0; 
min = 0; 
//设置两个标志,开始都指向第一个数
for (i = 1; i < n; i++) { 
if (a[i] > a[max]) 
max = i; //遍历数组,如果大于a[max]，就把他的数组下标赋给max
if (a[i] < a[min]) 
min = i; //同上，如果小于a[min],就把他的数组下标赋给min
} 
//以上for循环找到最大值和最小值，max是最大值的下标，min是最小值的下标
temp1 = a[0]; 
temp2 = a[max]; //这两个temp只是为了在交换时使用

a[0] = a[min]; 
a[min] = temp1; //首先交换a[0]和最大值a[max]

if (max != 0) { //如果最小值不是a[0]，执行下面
a[max] = a[n - 1]; 
a[n - 1] = temp2; //交换a[min]和a[n-1]
} else {       //如果最小值是a[0],执行下面
a[min] = a[n - 1]; 
a[n - 1] = temp1; 
} 
for (i = 0; i < n; i++) { //输出数组
System.out.print(a[i] + " "); 
} 

} 

}